using System;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using N = SecretLabs.NETMF.Hardware.Netduino;

namespace Netduino4Fun.Framework.ElectronicBrick
{
    public class Bus
    {
        public Cpu.Pin[] Pins { get; private set; }

        private Bus(Cpu.Pin[] pins)
        {
            this.Pins = pins;
        }        

        public readonly static Bus Bus1 = new Bus(
        new Cpu.Pin[]
            {
                N.Pins.GPIO_PIN_D2,
                N.Pins.GPIO_PIN_D3,
                N.Pins.GPIO_PIN_D4,
                N.Pins.GPIO_PIN_D5,
                N.Pins.GPIO_PIN_D6,
                N.Pins.GPIO_PIN_D7,
                N.Pins.GPIO_PIN_D9,
                N.Pins.GPIO_PIN_D9
            }
        );

        public readonly static Bus Bus2 = new Bus(
            new Cpu.Pin[]
            {
                N.Pins.GPIO_PIN_D10,
                N.Pins.GPIO_PIN_D11,
                N.Pins.GPIO_PIN_D12,
                N.Pins.GPIO_PIN_D13,
                N.Pins.GPIO_PIN_A0,
                N.Pins.GPIO_PIN_A1,
                N.Pins.GPIO_PIN_A2,
                N.Pins.GPIO_PIN_A3 
            }
        );


        public readonly static Bus Bus3 = new Bus(
         new Cpu.Pin[]
            {
                N.Pins.GPIO_PIN_D10,
                N.Pins.GPIO_PIN_D11,
                N.Pins.GPIO_PIN_D12,
                N.Pins.GPIO_PIN_D13,
                N.Pins.GPIO_PIN_A4,
                N.Pins.GPIO_PIN_A5,
                N.Pins.GPIO_PIN_D1,
                N.Pins.GPIO_PIN_D0  
            }
        );
    }
}
